\section{Realtime Volume Rendering}
\label{sec:RTVolumeRendering}

\subsection{Volume Ray-casting}
\label{subsec:VRayCasting}
During the rendering, the dynamic lighting environment is approximated using Equation (\ref{eqn:sh}). We adopt a simple Monte-Carlo integration to project the lighting onto SH basis functions in order to evaluate the coefficients $c_l^m$. Traditional GPU-based volume ray-casting method is used to render the volume data. In addition, at each data sampling point, we also sample the radiance $L_l^m$ from an extra volume texture. Then the global lighting can be simply evaluated through a dot product
\begin{equation}
L=\sum_{l=0}^{n-1}\sum_{m=-l}^{l}c_l^m L_l^m
\end{equation}
where $n=2$ in our implementation. The final radiance just combines the direct lighting with this indirect lighting to generate the final result. 